A present-day IT (Information Technology) system is configured with a plurality of software components, namely middleware, such as a database or an application server, a related program library, and an application program. Since these components operate by communicating with one another and the components have dependencies thereamong, when a system is constructed on processing devices, deployment sequences among the components, which are defined on the basis of the dependencies, are required to be followed.
For example, in PTL1, a software installation system is disclosed in which, when a plurality of pieces of software are installed at the same time, the plurality of pieces of software are sorted in an appropriate installation sequence in accordance with compatibility among the pieces of software.
In many cases, components composing a system are deployed to a plurality of processing devices in a decentralized manner for the purpose of load balancing and availability improvement. In the construction of such a decentralized system, when dependencies among components in different processing devices exist, it is required to control deployment sequences among the components in the different processing devices.
Constraints on deployment sequences of components in the construction of a decentralized system are very complicated in general. Therefore, for operational management middleware as disclosed in NPL1, a central management type deployment server is used. In this case, the deployment server controls deployment sequences among respective components composing a system. However, when the central management type deployment server is used, control communications for the deployment of the respective components concentrate on the deployment server, causing a bottleneck of performance or availability. The above situation becomes a problem, in particular, in the construction of a large-scale decentralized system in which processing devices number in hundreds, which is used in big data analysis of recent years or the like.
On the other hand, recent years, decentralization in the deployment of components by use of deployment scripts, as disclosed in NPL2, has been applied in the construction of decentralized systems. In this case, each processing device, in accordance with a deployment script that is generated with respect to each processing device, acquires components to be deployed to the processing device from a repository and deploys the acquired components. In this method, since control communications do not concentrate on a particular server and the respective processing devices carry out the deployment of components individually, it is easy to construct a large scale system. However, although such a deployment script is capable of controlling deployment sequences among components that are deployed to the same processing device, the deployment script is incapable of controlling deployment sequences among components that are deployed to different processing devices. Therefore, the decentralized deployment disclosed in NPL2 cannot be applied to the construction of a decentralized system that has dependencies among components in different processing devices.